/** 公共-本地存储(不主动清除即永久保存)-类 */

/**
 * 存储-指定key的[字符串值]
 * @param key key名称
 * @param value 值（字符串）
 */
export function set(key, value) {
    localStorage[key] = value;
}

/**
 * 获取-指定key的[字符串值]
 * @param key key名称
 * @returns 有值返回：字符串，没值返回：null
 */
export function get(key) {
    return localStorage[key] || null;
}

/**
 * 设置-指定key的[对象值]
 * @param key key名称
 * @param value 对象值
 */
export function setObject(key, value) {
    return localStorage[key] = JSON.stringify(value);
}

/**
 * 获取-指定key的[对象值]
 * @param key key名称
 * @returns 字符串
 */
export function getObject(key) {
    return JSON.parse(this.localStorage[key] || null);
}

/**
 * 删除-指定key的值
 * @param key key名称
 */
export function remove(key){
    localStorage.removeItem(key);
}

/**
 * 删除-所有本地存储
 */
export function removeAll(){
    localStorage.clear();
}    


/* ==================公用方法====================== */
/**
 * 获取-URL地址栏中指定参数
 * @param name 参数名称
 */
export function getUrlParamStr(name) {
    let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
    let reg_rewrite = new RegExp("(^|/)" + name + "/([^/]*)(/|$)", "i");
    let r = window.location.search.substr(1).match(reg);
    let q = window.location.pathname.substr(1).match(reg_rewrite);
    if(r != null){
        return unescape(r[2]);
    }else if(q != null){
        return unescape(q[2]);
    }else{
        return null;
    }
}

/** 
 * 获取-登录用户唯一标识-luuid
 * 为空返回null
 */
export function getLuuid(){
    return get('uuid');
}

///////////设置、获取、删除-本地缓存数据--begin//////////

/**
 * 获取-本地缓存数据
 * @param key 数据名称key
 */
export function getDataKey(key){
    return getObject(key);
}

/**
 * 设置-本地缓存数据
 * @param data 数据
 * @param key 数据名称key
 */
export function setDataKey(data, key){
    return setObject(key, data);
}

/**
 * 删除-本地缓存数据
 * @param key 数据名称key
 */
export function delDataKey(key){
    remove(key);
}
///////////设置、获取、删除-本地缓存数据--end//////////